﻿namespace Baggr
{
    using System;
    using System.Xml;

    public static class XmlHelper
    {
        /// <summary>
        /// Получить значение элемента Xml.
        /// </summary>
        /// <param name="rootElement">
        /// Элемент, значение которого нужно получить.
        /// </param>
        /// <param name="name">
        /// Название элемента.
        /// </param>
        /// <returns>
        /// Значение элемента Xml.
        /// Если элемента нет или таких элементов несколько, то возвращается значение первого.
        /// Если таких элементов нет, то возвращается System.String.Empty.
        /// </returns>
        public static string GetValueOrEmpty(this XmlElement rootElement, string name)
        {
            if(rootElement == null)
                throw new ArgumentNullException("rootElement");

            XmlNodeList nodeList = rootElement.GetElementsByTagName(name);
            if (nodeList.Count < 1 || nodeList[0].NodeType != XmlNodeType.Element)
                return string.Empty;
            var element = (XmlElement)nodeList[0];
            return element.InnerText ?? string.Empty;
        }
    }
}
